using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using FancyBattles.GameScreen;
using FancyBattles.GameEntities;

namespace FancyBattles
{
    /// <summary>
    /// This is the main type for your game
    /// </summary>
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        public const float SCREEN_HEIGHT = 720;
        public const float SCREEN_WIDTH = 1280;
        public const float LEFT_BOUND_OFFSET = 95;
        public const float RIGHT_BOUND_OFFSET = 140;
        public const float UPPER_BOUND_OFFSET = 125;
        public const float DOWN_BOUND_OFFSET = 50;
        GraphicsDeviceManager graphics;
        ScreenManager screenManager;

        public static Plane SCREEN_LEFT_BOUND = new Plane(Vector3.Left, LEFT_BOUND_OFFSET);
        public static Plane SCREEN_RIGHT_BOUND = new Plane(Vector3.Left, SCREEN_WIDTH - RIGHT_BOUND_OFFSET);
        public static Plane SCREEN_UPPER_BOUND = new Plane(Vector3.Down, UPPER_BOUND_OFFSET);
        public static Plane SCREEN_LOWER_BOUND = new Plane(Vector3.Down, SCREEN_HEIGHT - DOWN_BOUND_OFFSET);

        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            graphics.PreferredBackBufferHeight = (int) SCREEN_HEIGHT;
            graphics.PreferredBackBufferWidth = (int) SCREEN_WIDTH;

            screenManager = new ScreenManager(this);
            Components.Add(screenManager);

            Content.RootDirectory = "Content";
        }

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.Black);
            base.Draw(gameTime);
        }
    }
}
